package com.example.exercise.demo.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.stereotype.Service;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.ArrayList;
import java.util.List;

import com.example.exercise.demo.vo.AppCollectVO;
import com.example.exercise.demo.dao.entity.AppCollectEntity;
import com.example.exercise.demo.dao.AppCollectDAO;

/**
* 
*/
@Service
public class AppCollectService {

    @Autowired
    private AppCollectDAO appCollectDAO;

    public List<AppCollectVO> findByWhere(Page<?> page, AppCollectVO appCollectVO){
        List<AppCollectVO> list = new ArrayList<>();
        List<AppCollectEntity> list0 = appCollectDAO.findByWhere(page, appCollectVO);
        for (AppCollectEntity appCollectEntity : list0) {
            list.add(toAppCollectVO(appCollectEntity));
        }
        return list;
    }

    public AppCollectVO findByKey(AppCollectVO appCollectVO){
        AppCollectEntity appCollectEntity = appCollectDAO.findByKey(appCollectVO);
        return toAppCollectVO(appCollectEntity);
    }

    public int insert(AppCollectVO appCollectVO){
        return appCollectDAO.insert(toAppCollectEntity(appCollectVO));
    }

    public int updateByKey(AppCollectVO appCollectVO){
        return appCollectDAO.updateByKey(toAppCollectEntity(appCollectVO));
    }

    public int deleteByKey(AppCollectVO appCollectVO){
        return appCollectDAO.deleteByKey(appCollectVO);
    }

    private AppCollectVO toAppCollectVO(AppCollectEntity appCollectEntity) {
        AppCollectVO appCollectVO = new AppCollectVO();
                appCollectVO.setId(String.valueOf(appCollectEntity.getId()));
        appCollectVO.setUserId(String.valueOf(appCollectEntity.getUserId()));
        appCollectVO.setUserName(appCollectEntity.getUserName());
        appCollectVO.setPaperId(String.valueOf(appCollectEntity.getPaperId()));
        appCollectVO.setPaperName(appCollectEntity.getPaperName());

        return appCollectVO;
    }

    private AppCollectEntity toAppCollectEntity(AppCollectVO appCollectVO) {
        AppCollectEntity appCollectEntity = new AppCollectEntity();
                String id = appCollectVO.getId();
        if(id != null) {
            appCollectEntity.setId(Integer.parseInt(appCollectVO.getId()));
        }
        String userId = appCollectVO.getUserId();
        if(userId != null) {
            appCollectEntity.setUserId(Integer.parseInt(appCollectVO.getUserId()));
        }
        appCollectEntity.setUserName(appCollectVO.getUserName());
        String paperId = appCollectVO.getPaperId();
        if(paperId != null) {
            appCollectEntity.setPaperId(Integer.parseInt(appCollectVO.getPaperId()));
        }
        appCollectEntity.setPaperName(appCollectVO.getPaperName());

        return appCollectEntity;
    }

}